package task02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

/**
 * @author Administrator
 * 计算类：计算最高分，最低分，平均分
 */
public class Computer {
    // 接受传递的集合
    private ArrayList list;
    // set/get方法   或者   构造方法
    public ArrayList getList() {
        return list;
    }

    public void setList(ArrayList list) {
        this.list = list;
    }

    /**
     * 返回集合中的最大值
     * @return
     */
    public float max() {
        // 先排序(升序)，再取最后一个元素，就是最大值
        Collections.sort(list);
        float max= (float) list.get(list.size()-1);
       return max;
    }
    // 返回集合中的最小值
    public float min() {
        // 先排序（升序），第一个元素就是最小值
        Collections.sort(list);
        return (float) list.get(0);
    }
    // 去掉最大值，最小值之后的平均值
    public float avg() {
        /* 1、集合list移除最大元素、最小元素
           2、集合中剩下元素求和，
           3、和除以集合个数就是平均分
        * */
        // 集合list移除最大元素、最小元素
        list.remove(max());
        list.remove(min());
        // 保存和、平均值
        float sum=0,avg=0;
        // 循环操作：求集合中所有元素的和
        Iterator iterator=list.iterator();
        while (iterator.hasNext()){
            sum += (Float)iterator.next();
        }
        avg=sum/list.size();
        return avg;
    }
}
